package com.xjh.basestudy.designmode.behaviorMode.behaviorMode11_Interpreter;

/**
 * @Author XuJianHua
 * @Date 2022/10/6 23:23
 * @Description
 *
 * 所有终极表达式都实现了解释方法interpret()，并进行了自己特有的指令解释操作（以输出模拟）。
 * 其中比较特殊的是延迟表达式Delay，它能基于构造器传入的时间长度使当前进程暂停，以模拟系统操作线程的延迟功能。

 */
public class Delay implements Expression {

    private int seconds;// 延迟秒数

    public Delay(int seconds) {
        this.seconds = seconds;
    }

    public int getSeconds() {
        return seconds;
    }

    public void interpret() {
        System.out.println("系统延迟：" + seconds + "秒");
        try {
            Thread.sleep(seconds * 1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}